如果您作为资深用户想了解如何定制和扩展 FreeCAD, 那您就来对地方了。
FreeCAD 可以用 Python 代码扩展,这些代码可以直接在 Python 控制台中执行,也可以在启动时从模块加载,因此不需要重新编译 FreeCAD 程序,即可对 FreeCAD 进行修改。例如,可以:
- 创建并修改几何体:可以创建一种全新的对象类型,或通过调整现有类型来创建一种新类型。
- 创建自定义工具和命令:添加自己的工具集来运行你的代码。
- 修改界面:创建工具栏以放置你的工具,或创建特殊的窗口、面板或界面,用于与这些工具交互。
- 修改场景图表示:FreeCAD 在生成几何体和在屏幕上显示几何体时,使用独立的处理过程。你可以完全访问场景内容的显示方式,因此可以修改该表示、与其交互,或为其添加自定义行为。还可以添加自定义屏幕部件,例如信息显示、拖动控件、锚点或临时实体。
这些页面还远没有成熟。如果你没找到你要找的信息,或者你在别的地方发现了有用的信息,而我们没有链接在这里,那为什么不自己添加进来?同时,请在论坛留下你的意见。
定制 FreeCAD
在 FreeCAD 里写脚本
常规
通则
模块
在 FreeCAD 中,功能被划分为多个模块,每个模块负责处理特定的数据类型和应用。FreeCAD 有内置模块和扩展模块(插件)。安装了插件模块之后,可以像使用内置模块一样方便地使用它们。下文所述的是默认模块,FreeCAD 的每一个安装包都包含这些模块。
- 内建模块是 FreeCAD 的主体模块,其中的工具可以调整 FreeCAD 的一般配置、文档和内容。
- 创建工作台展示如何创建自己的工作台。
使用网格(Mesh)
使用零件(Part)
访问 Coin 场景图
控制 Qt 界面
参数对象类工作
示例
- 代码片段:一些 FreeCAD 的 Python 代码片段,可作为编写脚本的参考素材。
- 线条绘制函数:如何构建一个简单的绘制线条工具。
- 对话框创建:如何使用 Qt Designer 构建对话框并在 FreeCAD 中使用它们。
- 嵌入 FreeCAD:如何在其他应用程序中将 FreeCAD 作为 Python 模块导入。
- 草图工作台:为 FreeCAD 添加基本的二维绘图功能,这一模块完全由 Python 编写,是学习自定义模块编写的良好示例。
- FreeCAD 向量数学库:提供一组便捷函数,用于操作 FreeCAD 向量。该库也包含在草图模块中。
API 函数
FreeCAD 完整的 API 文档放在 https://www.freecad.org/api/ 中。它既有 C++ 也有 Python 的 API,还没有完全格式化好。如果想找只含 Python 的代码,可能要费一番功夫。更便于浏览的版本在这里。注意,它可能并不完整,因为它是人工更新的。要找更精确信息的话,直接在 FreeCAD 的 Python 控制台里浏览相应模块吧。
相关:将 C++ 暴露给 Python
高级修改
Python 教程
这些是不错的通用教程,并非专为 FreeCAD 撰写,但如果你完全没接触过 Python, 它们可能对你有益处。
Python
PySide ——怎样通过 Python 创建和管理 FreeCAD 的 Qt 用户交互界面。
下面两个参考源,专用于 PyQt(不是 PySide),但它们可能给了一些有用的信息:
Pivy - 怎样与 FreeCAD 的 3D 场景交互
社区项目
在社区入口,你会找到其它基于 FreeCAD 的项目,它们由 FreeCAD 用户社区运行。如果你正开始一个新的 FreeCAD 项目,一定要登记上去。如果你愿意帮助 FreeCAD,我们列出了你可以做的事情。
Power user documentation
- Parametric objects: Scripted objects, Viewproviders (Custom icon in tree view)
- Scenegraph: Coin (Inventor) scenegraph, Pivy
- Graphical interface: Interface creation, Interface creation completely in Python (1, 2, 3, 4, 5), PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Embedding: Embedding FreeCAD, Embedding FreeCADGui